perm filename DDVID.SAI[2,DBL] blob
sn#007814 filedate 1973-01-29 generic text, type T, neo UTF8
COMMENT ⊗ VALID 00004 PAGES
RECORD PAGE DESCRIPTION
00001 00001
00002 00002 BEGIN "DDVID"
00004 00003 FORTRAN REAL PROCEDURE ALOG(REAL X)
00006 00004 PICTURE PIC,CPIC[0:PICMAX]
00007 ENDMK
⊗;
BEGIN "DDVID"
REQUIRE "PROLOG.HDR[1,PDQ]" SOURCE_FILE;
REQUIRE "DDSUBS.HDR[1,PDQ]" SOURCE_FILE;
REQUIRE 5000 STRING_SPACE;
FORTRAN REAL PROCEDURE ALOG(REAL X);
PROCEDURE LOGPIC(PICTURE PIC);
BEGIN
REAL A,B,K,LB;
INTEGER I,J,PTI,SIZX,SIZY,SIZL,SAMAX;
INTEGER_ARRAY CTAB[0:SAMAX←1 LSH PIC[BIT] -1];
A←PSCALE/PIC[GAIN];B←PIC[OFFSET]/PSCALE;
LB←ALOG(A+B);
K←SAMAX/(ALOG(SAMAX*A+B)-LB);
FOR I←1 STEP 1 UNTIL SAMAX DO
CTAB[I]←K*(ALOG(A*I+B)-LB);
PIC[GAIN]←K*PSCALE;PIC[OFFSET]←LB*PSCALE;
PTI←PIC[PTR];SIZX←PIC[SIZEX];SIZY←PIC[SIZEY];SIZL←PIC[SIZEL];
FOR J←1 STEP 1 UNTIL PIC[SIZEY] DO
BEGIN
START_CODE
DEFINE PT="1",A="2",I="3";
LABEL L,LC;
MOVE I,SIZX;MOVE PT,PTI;
MOVE A,CTAB;HRRM A,LC;
L: ILDB A,PT;
LC:MOVE A,(A);DPB A,PT;SOJG I,L;
END;
PTI←PTI+PIC[SIZEL];
END;
END "LOGPIC";
PICTURE PIC,CPIC[0:PICMAX];
INTEGER ARRAY PARS[1:14];
DDVID(PIC,CPIC,NULL,PARS);
END;